/*
A 设计哈希函数
1> 将字符串转化为较大的数字hashCode;
2> 将大数字hashCode压缩到数组范围大小内
*/

function hashCode (str, size) {
    // hashCode变量初始化
    let hashCode = 0;

    // 利用霍纳算法,计算hashCode,此处用UniCode编码
    for (let index = 0; index < str.length; index++) {
        hashCode = 37 * hashCode + str.charCodeAt(index);
        // 37为质数步长
    }

    // 压缩hashCode
    let index = hashCode % size;

    return index
}

// 测试哈希函数
console.log(hashCode('abc', 7));
console.log(hashCode('qrt', 7));
console.log(hashCode('efg', 7));